﻿Public Class YDI_SaglikMasrafRapor : Inherits ProcessReport
	Dim ExcelBaslik As String = ""
	Dim Baslik1 As String = ""
	Dim Baslik2 As String = ""
	Dim RecSet As Recordset
	Dim taleptar As Input
	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Text = "Sağlık Yardımı Masrafları Raporu "
				InitialHelp = "Yıl,Ad Soyad bilgilerini girin."
				'AddDate("TalepTarihi", "Talep Tarihi", "width=10", YMD(GetSetting("SSD", "YDI_SaglikMasraf", "TalepTarihi", Today.Date)), "Lütfen talep Tarihini boş bırakmayınız!")
				taleptar = AddCombo("TalepTarihi", "Talep Tarihi", Yurtdisi.SaglikMasraf.TalepTarihiOku, "", "", "")
				AddCombo("RaporTip", "Raporlu Tipi", "0,Özet Liste|1,Detaylı Liste|2,Özet Toplam", "width=10;nl", "0")
				AddCombo("Yil", "İşlem Yılı", "H,Hepsi|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020", "width=6", GetSetting("SSD", "YDI_SaglikMasraf", "Yil", ""))
				AddCombo("TalepNo", "Talep No", "H,Hepsi|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10|11,11|12,12|13,13|14,14|15,15|16,16|17,17|18,18|19,19|20,20|21,21|22,22|23,23|24,24|25,25", "width=8", GetSetting("SSD", "YDI_SaglikMasraf", "TalepNo", ""))
				AddCombo("BasvuruRet", "Geçerli/Ret", "2,Hepsi|0,Geçerli|1,Ret", "width=10;nl", "0")
				AddField("Ad")
				AddField("Soyad")
				AddCombo("Akrabalik", "Akrabalık", "H,Hepsi|E,Eşi|C,Çocuğu|A,Ana Baba", "nl;width=10", "H")
				AddText("AkrabaAd", "Yakını Ad", "", "", "")
				AddCombo("Kaykul", "Kayıt Eden", "H,Hepsi|Kazım Lord,Kazım Lord|Önem Asoğlu,Önem Asoğlu|İstem Uzmaner,İstem Uzmaner|Mehmet Kuset,Mehmet Kuset", "width=15", "H")
				AddCombo("FormNo", "FormNo", "H,Hepsi|1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10", "width=8;nl", GetSetting("SSD", "YDI_SaglikMasraf", "FormNo", ""))
			Case EventType.Export
				RecSet.Export(ExcelBaslik)

			Case EventType.Other

			Case EventType.ValidateForm
				Landscape = True

				Dim where As String = "" 'TalepYil=" & Input("Yil")
				Dim Yakinlik As String = ""

				If Input("Akrabalik") = "E" Then
					Yakinlik = " Esi "
				ElseIf Input("Akrabalik") = "C" Then
					Yakinlik = " Cocugu "
				ElseIf Input("Akrabalik") = "A" Then
					Yakinlik = " AnaBaba "
				End If
				where = where & If(Input("BasvuruRet") = 2, " ", " and BasvuruRet=" & Input("BasvuruRet"))
				where = where & If(Input("FormNo") = "H", " ", " and FormNo=" & Input("FormNo"))
				where = where & If(Input("TalepNo") = "H", " ", " and TalepNo=" & Input("TalepNo"))
				where = where & If(Input("Yil") = "H", " ", " and TalepYil=" & Input("Yil"))
				where = where & If(taleptar.IsEmpty, " ", " and TalepTarihi='" & Input("TalepTarihi") & "'")
				where = where & If(Input("Ad") = "", " ", " and ADSOYAD like '" & Input("Ad") & "%' ")
				where = where & If(Input("Soyad") = "", " ", " and ADSOYAD like '% " & Input("soyad") & "' ")
				where = where & If(Input("Kaykul") = "H", " ", " and KAYKUL like '%" & Input("Kaykul") & "%'")
				where = where & If(Input("Akrabalik") = "H", " ", " and " & Yakinlik & " like '%" & Input("AkrabaAd") & "%'")
				where = where & If(Input("Kaykul") = "H", " ", " and KAYKUL like '%" & Input("Kaykul") & "%'")

				If LTrim(where).Substring(0, 3) = "and" Then
					where = " where " & LTrim(where).Substring(4, LTrim(where).Length - 4)
				End If

				If Input("RaporTip") = 0 Or Input("RaporTip") = 1 Then ' Normal veya Özet liste
					RecSet = Remote.OpenSQL("select " & _
					  " rowid,BasvuruRet,TalepNo,TalepTarihi,TalepYil,AdSoyad,FormNo,Esi,Cocugu,AnaBaba,Ayakta,Yatili " & _
					  " ,RontgenTahlil,Toplam,IlacGideri,IyilestirmeVasitasi,ProtezArac,YollukGider,ToplamGider,KAYKUL " & _
					  " from ssdmerkez..YDSaglikMasraf " & where & _
					 " order by TalepTarihi,TalepYil,rowid ")

				ElseIf Input("RaporTip") = 2 Then ' Talep yili ve Yil bazinda toplam
					RecSet = Remote.OpenSQL("select " & _
					  " TalepTarihi,TalepYil,sum(Ayakta) as Ayakta,sum(Yatili) as Yatili " & _
					  " ,sum(RontgenTahlil) as RontgenTahlil,sum(Toplam) as Toplam,sum(IlacGideri) as IlacGideri, " & _
					  " sum(IyilestirmeVasitasi) as IyilestirmeVasitasi,sum(ProtezArac) as ProtezArac,sum(YollukGider) as YollukGider,sum(ToplamGider) as ToplamGider" & _
					  " from ssdmerkez..YDSaglikMasraf " & where & " group by TalepTarihi,TalepYil" & _
					  " order by TalepTarihi,TalepYil")
				End If

				SaveSetting("SSD", "YDI_SaglikMasraf", "Yil", Input("Yil"))
				SaveSetting("SSD", "YDI_SaglikMasraf", "TalepTarihi", TitleCase(Input("TalepTarihi")))
				SaveSetting("SSD", "YDI_SaglikMasraf", "TalepNo", Input("TalepNo"))
				SaveSetting("SSD", "YDI_SaglikMasraf", "Formno", TitleCase(Input("FormNo")))

				If RecSet.EOF Then
					Warning("Sorguladığınız kriterlere uyan kayıt bulunamadı !")
					Buttons.Show("Reset")
					Exit Sub
				End If
				Buttons.Show("Reset")
				Report.Exports = True
				e.Result = True



			Case EventType.ReportHeader
				If Input("Yil") = "H" Then
					Baslik1 = Input("TalepTarihi") & " Talep Tarihli Tüm yıllara ait YurtDışı Sağlık Yardımları Raporu "
				Else
					Baslik1 = Input("TalepTarihi") & " Talep Tarihli " & Input("Yil") & " yılına ait YurtDışı Sağlık Yardımları Raporu "
				End If

				ExcelBaslik = Baslik1
				Report.FontSize = "+"

			Case EventType.PageHeader
				Report.PrintParagraph(Baslik1)
				If Input("RaporTip") = 0 Then	' Ozet Liste
					Report.SetColumns("No;SeriNo;TalepTarihi;Yıl;Red;Ad Soyad;FNo;TNo;Eşi;Çocuğu;AraToplam;ToplamGider;KayitEden", "4;5;12;6;5;20;5;5;10;10;9;9;6", "l;l;d;l;l;l;l;l;l;l;m;m;l", "-n")
				ElseIf Input("RaporTip") = 1 Then ' Detayli Liste 
					Report.SetColumns("No;SeriNo;TalepTarihi;Yıl;Red;Ad Soyad;FNo;TNo;Eşi;Çocuğu;AnaBaba;Ayakta;Yatılı;Ront-Tahlil;Toplam;İlaçGideri;İylş.Vas.;Protez;Yolluk;ToplamGider;KayitEden", "11;7;11;7;4;21;4;4;10;10;4;7;7;5;9;5;5;5;4;9;7", "l;l;d;l;l;l;l;l;l;l;l;m;m;m;m;m;m;m;m;m", "--n")
				ElseIf Input("RaporTip") = 2 Then 'Ozet Toplam
					Report.SetColumns("TalepTarihi;Yıl;Ayakta;Yatılı;Ront-Tahlil;Toplam;İlaçGideri;İylş.Vas.;Protez;Yolluk;ToplamGider", "3;3;4;4;4;4;4;4;4;4;4", "d;l;m;m;m;m;m;m;m;m;m", "-n")
				End If

			Case EventType.ReportDetail
				Dim sayac As Int16 = 0

				If Input("RaporTip") = 0 Then	' Ozet Liste
					Do Until RecSet.EOF
						sayac += 1
						RecSet("Toplam") = RecSet("ayakta") + RecSet("Yatili") + RecSet("RontgenTahlil")
						RecSet("ToplamGider") = RecSet("Toplam") + RecSet("Ilacgideri") + RecSet("IyilestirmeVasitasi") + RecSet("ProtezArac") + RecSet("YollukGider")

						Report.Print(sayac, RecSet("rowid"), RecSet("TalepTarihi"), RecSet("TalepYil"), RecSet("BasvuruRet"), RecSet("ADSOYAD"), RecSet("FormNo"), RecSet("TalepNo"), RecSet("Esi"), RecSet("Cocugu"), _
						RecSet("Toplam"), RecSet("ToplamGider"), RecSet("KAYKUL"))
						RecSet.MoveNext()
					Loop
					Report.PrintSeparator()
					Report.Print("", "", "", "", "", "", "", "", "", "", RecSet.Sum("Toplam"), RecSet.Sum("ToplamGider"), "")

				ElseIf Input("RaporTip") = 1 Then  ' Detayli Liste 
					Do Until RecSet.EOF
						sayac += 1
						RecSet("Toplam") = RecSet("ayakta") + RecSet("Yatili") + RecSet("RontgenTahlil")
						RecSet("ToplamGider") = RecSet("Toplam") + RecSet("Ilacgideri") + RecSet("IyilestirmeVasitasi") + RecSet("ProtezArac") + RecSet("YollukGider")

						Report.Print(sayac, RecSet("rowid"), RecSet("TalepTarihi"), RecSet("TalepYil"), RecSet("BasvuruRet"), RecSet("ADSOYAD"), RecSet("FormNo"), RecSet("TalepNo"), RecSet("Esi"), RecSet("Cocugu"), _
						RecSet("AnaBaba"), RecSet("ayakta"), RecSet("Yatili"), RecSet("RontgenTahlil"), RecSet("Toplam"), RecSet("Ilacgideri"), RecSet("IyilestirmeVasitasi"), _
						RecSet("ProtezArac"), RecSet("YollukGider"), RecSet("ToplamGider"), RecSet("KAYKUL"))
						RecSet.MoveNext()
					Loop
					Report.PrintSeparator()
					Report.Print("", "", "", "", "", "", "", "", "", "", "", _
					RecSet.Sum("ayakta"), RecSet.Sum("Yatili"), RecSet.Sum("RontgenTahlil"), _
					RecSet.Sum("Toplam"), RecSet.Sum("Ilacgideri"), RecSet.Sum("IyilestirmeVasitasi"), _
					RecSet.Sum("ProtezArac"), RecSet.Sum("YollukGider"), RecSet.Sum("ToplamGider"))


				ElseIf Input("RaporTip") = 2 Then  ' Talep yili bazinda toplam
					Do Until RecSet.EOF
						sayac += 1
						RecSet("Toplam") = RecSet("ayakta") + RecSet("Yatili") + RecSet("RontgenTahlil")
						RecSet("ToplamGider") = RecSet("Toplam") + RecSet("Ilacgideri") + RecSet("IyilestirmeVasitasi") + RecSet("ProtezArac") + RecSet("YollukGider")
						Report.Print(RecSet("TalepTarihi"), RecSet("TalepYil"), _
						RecSet("ayakta"), RecSet("Yatili"), RecSet("RontgenTahlil"), RecSet("Toplam"), RecSet("Ilacgideri"), RecSet("IyilestirmeVasitasi"), _
						RecSet("ProtezArac"), RecSet("YollukGider"), RecSet("ToplamGider"))
						RecSet.MoveNext()
					Loop
					Report.PrintSeparator()
					Report.Print("", "", RecSet.Sum("ayakta", "BasvuruRet=0"), RecSet.Sum("Yatili", "BasvuruRet=0"), RecSet.Sum("RontgenTahlil", "BasvuruRet=0"), _
					RecSet.Sum("Toplam", "BasvuruRet=0"), RecSet.Sum("Ilacgideri", "BasvuruRet=0"), RecSet.Sum("IyilestirmeVasitasi", "BasvuruRet=0"), _
					RecSet.Sum("ProtezArac", "BasvuruRet=0"), RecSet.Sum("YollukGider", "BasvuruRet=0"), RecSet.Sum("ToplamGider", "BasvuruRet=0"))
				End If

				sayac = 0
		End Select
	End Sub


End Class


Public Class YDI_SaglikMasraf_Giris
	Inherits Process


	Public Overrides Sub GenericEvent(ByVal e As ProcessEventArgs)
		Select Case e.EventType
			Case EventType.Initialize
				Text = "Sağlık Yardımı Masrafları Girişi "
				InitialHelp = "Yıl,Ad Soyad,etc. bilgilerini girin."
				AddText("rowid", "Seri No", "width=6;nl", "", "")
				StartBody()
				AddCombo("TalepTarihi", "Talep Tarihi", "", YMD(GetSetting("SSD", "YDI_SaglikMasraf", "TalepTarihi", Today.Date)), "Lütfen Talep Tarihini giriniz !!")
				AddCombo("Yil", "İşlem Yılı", "2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015|2016|2017|2018|2019|2020", "width=6", GetSetting("SSD", "YDI_SaglikMasraf", "Yil", "")) '  SaveSetting("SSD", "YDI_SaglikMasraf", "Kaykul", Input("Kaykul"))
				AddCombo("TalepNo", "Talep No", "1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10|11,11|12,12|13,13|14,14|15,15|16,16|17,17|18,18|19,19|20,20|21,21|22,22|23,23|24,24|25,25", "nl;width=5", GetSetting("SSD", "YDI_SaglikMasraf", "TalepNo", ""))
				AddCombo("BasvuruRet", "Geçerli/Ret", "0,Geçerli|1,Ret", "width=10", "0")

				AddCombo("Kaykul", "Kayıt Eden", "Kazım Lord,Kazım Lord|Önem Asoğlu,Önem Asoğlu|İstem Uzmaner,İstem Uzmaner|Mehmet Kuset,Mehmet Kuset", "width=15", GetSetting("SSD", "YDI_SaglikMasraf", "Kaykul", ""))
				AddCombo("FormNo", "FormNo", "1,1|2,2|3,3|4,4|5,5|6,6|7,7|8,8|9,9|10,10", "width=5;nl", GetSetting("SSD", "YDI_SaglikMasraf", "FormNo", ""))

				AddText("Ad", "Ad", "", "", "")
				AddText("Soyad", "Soyad", "", "", "")
				AddCombo("Akrabalik", "Akrabalık", "K,Kendisi|E,Eşi|C,Çocuğu|A,Ana Baba", "nl;width=10", "K")
				AddText("AkrabaAd", "Yakını Ad", "", "", "")
				',[Ayakta],[Yatili],[RontgenTahlil],[Toplam],[IlacGideri],[IyilestirmeVasitasi],[ProtezArac],[YollukGider],[ToplamGider]
				AddText("Ayakta", "Ayakta", "width=7", "0", "")
				AddText("Yatili", "Yatılı", "width=7;nl", "0", "")
				AddText("RontgenTahlil", "RontgenTahlil", "width=7", "0", "")
				AddText("Toplam", "Ara Toplam", "width=7", "0", "")
				AddText("IlacGideri", "İlaç Gideri", "width=7;nl", "0", "")
				AddText("IyilestirmeVasitasi", "İyileştirme Vasıtası", "width=7", "0", "")
				AddText("ProtezArac", "Protez-Araç", "width=7", "0", "")
				AddText("YollukGider", "Yolluk Gideri", "width=7;nl", "0", "")
				AddText("ToplamGider", "Genel Toplam", "width=7;nl", "0", "")
				'  AddRule(RuleType.Enabled,"Akrabalik","AkrabaAd",
				' 

			Case EventType.Other
				If e.Name = "Akrabalik.Change" Then Enabled("AkrabaAd") = Input("Akrabalik") <> "K"
			Case EventType.ValidateForm

				If Trim(Input("rowid")) = "" Then
					Focus("Yil")
					' Warning("Sorguladığınız Dosya numarasına uyan kayıt bulunamadı.")
					'Confirm("Sorguladığınız Dosya numarasına uyan kayıt bulunamadı.")
					If Confirm("Boş Sırano girdiniz! Yeni olarak girmek istiyormusunuz?") Then
						Enabled("rowid") = False
						Buttons.Show("Save.Reset")
						e.Result = True
						Exit Sub
					End If
				Else
					Rs = Yurtdisi.SaglikMasraf.Oku(Remote, Input("rowid"))
					If Not Rs.EOF Then
						Dim ADS() As String = Rs("AdSoyad").ToString.Split(" ")
						Dim AkrabaAD, AkrabaCombo As String
						If Trim(Rs("Esi")) <> "" Then
							AkrabaAD = Rs("Esi").ToString
							AkrabaCombo = "E"
						ElseIf Trim(Rs("Cocugu")) <> "" Then
							AkrabaAD = Rs("Cocugu").ToString
							AkrabaCombo = "C"
						ElseIf Trim(Rs("AnaBaba")) <> "" Then
							AkrabaAD = Rs("AnaBaba").ToString
							AkrabaCombo = "A"
						Else
							AkrabaAD = ""
							AkrabaCombo = "K"
						End If

						SetValues("TalepTarihi,Yil,TalepNo,BasvuruRet,Kaykul,FormNo,Ad,Soyad", Rs("TalepTarihi"), Rs("TalepYil"), Rs("TalepNo"), Rs("BasvuruRet"), Rs("Kaykul"), Rs("FormNo"), ADS(0), ADS(1))
						SetValues("Akrabalik,AkrabaAd", AkrabaCombo, AkrabaAD)
						SetValues("Ayakta,Yatili,RontgenTahlil,Toplam,IlacGideri", Rs("Ayakta"), Rs("Yatili"), Rs("RontgenTahlil"), Rs("Toplam"), Rs("IlacGideri"))
						SetValues("IyilestirmeVasitasi,ProtezArac,YollukGider,ToplamGider", Rs("IyilestirmeVasitasi"), Rs("ProtezArac"), Rs("YollukGider"), Rs("ToplamGider"))

						Buttons.Show("Save.Delete.Reset")
						e.Result = True

					Else
						Warning("Sorguladığınız Dosya numarasına uyan kayıt bulunamadı.")
						e.Result = False
						Exit Sub
					End If
				End If

			Case EventType.Save
				If Trim(Input("Ad")) = "" Or Trim(Input("Soyad")) = "" Then
					Warning(" Ad ve soyad bilgisini giriniz !")
					Exit Sub
				Else
					Rs = Yurtdisi.SaglikMasraf.Oku(Remote, Input("rowid"))
					If Rs.EOF Then Rs.AddNew()

					Dim AkrabaTip As String = ""
					If Input("Akrabalik") = "K" Then
						AkrabaTip = ""
					ElseIf Input("Akrabalik") = "E" Then
						AkrabaTip = "Esi "
					ElseIf Input("Akrabalik") = "C" Then
						AkrabaTip = "Cocugu "
					ElseIf Input("Akrabalik") = "A" Then
						AkrabaTip = "AnaBaba "
					End If
					'MsgBox("3")
					Rs("Toplam") = If(IsDBNull(Rs("ayakta")), 0, Rs("ayakta")) + If(IsDBNull(Rs("Yatili")), 0, Rs("Yatili")) + If(IsDBNull(Rs("RontgenTahlil")), 0, Rs("RontgenTahlil"))
					Rs("ToplamGider") = Rs("Toplam") + If(IsDBNull(Rs("IlacGideri")), 0, Rs("IlacGideri")) + If(IsDBNull(Rs("IyilestirmeVasitasi")), 0, Rs("IyilestirmeVasitasi")) + _
					 If(IsDBNull(Rs("ProtezArac")), 0, Rs("ProtezArac")) + If(IsDBNull(Rs("YollukGider")), 0, Rs("YollukGider"))
					'MsgBox("4")
					Rs.SetValues("TalepTarihi,TalepYil,TalepNo,BasvuruRet,Kaykul,FormNo ,AdSoyad ,Ayakta,Yatili,RontgenTahlil, " & _
					  " Toplam,IlacGideri,IyilestirmeVasitasi,ProtezArac, YollukGider, ToplamGider,islemtar ", Input("TalepTarihi"), Input("Yil"), Input("TalepNo"), Input("BasvuruRet"), _
					  Input("Kaykul"), Input("FormNo"), Input("Ad") & " " & Input("Soyad"), Input("Ayakta"), Input("Yatili"), Input("RontgenTahlil"), _
					  Input("Toplam"), Input("IlacGideri"), Input("IyilestirmeVasitasi"), Input("ProtezArac"), Input("YollukGider"), Input("ToplamGider"), DMY(Remote.SysDate))
					'MsgBox("5")
					If Input("Akrabalik") <> "K" Then
						Rs.SetValues(AkrabaTip, Input("AkrabaAd"))
					End If
					'MsgBox("6")
					Rs.Save()
					'MsgBox("7")
					SaveSetting("SSD", "YDI_SaglikMasraf", "Yil", Input("Yil"))
					SaveSetting("SSD", "YDI_SaglikMasraf", "Kaykul", Input("Kaykul"))
					SaveSetting("SSD", "YDI_SaglikMasraf", "TalepTarihi", TitleCase(Input("TalepTarihi")))
					SaveSetting("SSD", "YDI_SaglikMasraf", "TalepNo", Input("TalepNo"))
					SaveSetting("SSD", "YDI_SaglikMasraf", "Formno", TitleCase(Input("FormNo")))

					Info("Kayıt işlemi başarıyla tamamlanmıştır.")
				End If

				ResetForm()
				Buttons.Show("Save.Reset")

			Case EventType.Delete

				If Not Confirm("Bu seçili kaydı tamamen silmek istediğinize emin misiniz?") Then Exit Sub
				Yurtdisi.SaglikMasraf.Sil(Remote, Input("rowid"))
				Info("Silme işlemi başarıyla tamamlanmıştır.")
				ResetForm()

		End Select
	End Sub

End Class

